package com.yuandian.management.service;

import com.yuandian.management.vo.flowConf.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 描述: 实时流读取配置表接口
 *
 * @author lxixi
 * @create 2023-06-02 14:53
 */
public interface FlowConfService {
	/**
	 * 区域配置信息
	 *
	 * @return
	 */
	AreaConf getAreaConf();

	/**
	 * 营业厅配置
	 * <营业厅编号, 区域编码>
	 *
	 * @return
	 */
	BusinessHallConf getBusinessHallConf();

	/**
	 * 渠道配置信息
	 *
	 * @return
	 */
	ChannelMappingConf getChannelMappingConf();

	/**
	 * 已确认的业务服务资源配置
	 * <加工拼接后的资源编码, 占位符无意义>
	 *
	 * @return
	 */
	ConfirmedResourceConf getConfirmedResourceConf();

	/**
	 * db端系统组件关系配置
	 * <组件ip十进制格式, [系统端组件关联关系配置信息]>
	 *
	 * @param segmentTypes 网端类型列表
	 * @return
	 */
	IpSegmentComRelationConf getIpSegmentComRelationConf(@Param("params") List<String> segmentTypes);

	/**
	 * 详单组合配置信息
	 *
	 * @return
	 */
	DetailConf getDetailConf();

	/**
	 * 操作员配置信息 <操作员编号, 操作员实体>
	 *
	 * @return
	 */
	EmployeeConf getEmployeeConf();

	/**
	 * 专属指标配置信息
	 *
	 * @return
	 */
	ExclusiveIndicatorConf getExclusiveIndicatorConf();


	/**
	 * 模块配置信息
	 *
	 * @return
	 */
	ModuleConf getModuleConf();

	/**
	 * 步骤sessionId回填专属指标配置
	 * <首端业务资源编码, <GET/SAVE, 专属指标code>>
	 *
	 * @return
	 */
	SessionIdFillBackConf getSessionIdFillBackConf();

	/**
	 * 步骤顺序配置
	 * key = 步骤编码
	 * value = sequence
	 *
	 * @return
	 */
	StepSequenceConf getStepSequenceConf();

	/**
	 * 系统-业务-步骤配置
	 * <systemId|resourceCode, 系统-业务-步骤配置>
	 *
	 * @return
	 */
	SystemBusiStepRelationConf getSystemBusiStepRelationConf();

	/**
	 * 业务服务资源发现黑名单配置
	 * <过滤字符串值小写字母标识, 1>
	 *
	 * @return
	 */
	WebFilterConf getWebFilterConf();

	/**
	 * 描述: web和step端的系统组件关系配置
	 * <网端端类型(step或web), <ip, IT端与组件关系映射集合>>
	 *
	 * @return
	 */
	WebStepIpSegmentComRelationConf getWebStepIpSegmentComRelationConf();

	/**
	 * 描述: 白名单配置
	 * <白名单类型, 白名单列表>
	 *
	 * @return
	 */
	WhiteListConf getWhiteListConf();

	/**
	 * 网端与业务服务资源存在配置
	 * <segmentId|resourceCode, true>
	 *
	 * @return
	 */
	SegmentResourceExistConf getSegmentResourceExistConf();

	/**
	 * 获取实时流参数配置
	 *
	 * @return
	 */
	FlowParamsConf getFlowParamsConf();

	/**
	 * 原始包捕获规则配置
	 * @return
	 */
	OriDataFilterConf getOriDataFilterConf();

	/**
	 * 获取实时流参数配置
	 *
	 * @return
	 */
	NetworkAgentConf getNetworkAgentMap();


}
